/** @type {import('next').NextConfig} */
const path = require('path');

const nextConfig = {
  reactStrictMode: true,
  swcMinify: true,
  // 生产环境使用子路径，开发环境不使用
  basePath: process.env.NODE_ENV === 'production' ? '/aoshu' : '',
  assetPrefix: process.env.NODE_ENV === 'production' ? '/aoshu' : '',
  eslint: {
    ignoreDuringBuilds: true,
  },
  // 强制每次构建生成新的 buildId，避免客户端缓存旧静态资源
  generateBuildId: async () => {
    return `build-${Date.now()}`
  },
  // 关闭 ETag，降低代理层缓存复用概率
  generateEtags: false,
  // 为所有页面和静态资源设置不缓存，彻底解决缓存问题
  async headers() {
    return [
      {
        source: '/_next/static/:path*',
        headers: [
          { key: 'Cache-Control', value: 'no-store, no-cache, must-revalidate' },
        ],
      },
      {
        source: '/:path*',
        headers: [
          { key: 'Cache-Control', value: 'no-store, no-cache, must-revalidate' },
        ],
      },
    ]
  },
  // 支持引用父目录的questions
  webpack: (config, { isServer }) => {
    // 添加别名配置
    config.resolve.alias['@questions'] = path.resolve(__dirname, '../questions');
    
    // 添加扩展名支持
    if (!config.resolve.extensions.includes('.ts')) {
      config.resolve.extensions.push('.ts', '.tsx');
    }
    
    return config;
  },
}

module.exports = nextConfig
